package com.jarveis.frame.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
import java.util.Properties;

import org.apache.log4j.Logger;

import com.jarveis.frame.io.Resource;
import com.jarveis.frame.lang.ObjectUtil;

/**
 * 配置类
 * 
 * @author liuguojun
 */
public class Configuration {

	private static final Logger logger = Logger.getLogger(Configuration.class);
	
	private Properties prop;

	/**
	 * 读取输入流(*.properties文件构建的输入流)中的配置信息
	 * 
	 * @param is
	 *            文件(*.preperties)输入流
	 */
	public Configuration(InputStream is) {
		prop = new Properties();
		if (!ObjectUtil.isNull(is)) {
			try {
				prop.load(is);
			} catch (IOException ex) {
				logger.error("加载配置文件出错", ex);
			}
		}
	}

	/**
	 * 读取文件中(*.properties)的配置信息
	 * 
	 * @param path
	 *            文件(*.properties)路径
	 */
	public Configuration(String path) {
		this(Resource.getStream(path));
	}

	/**
	 * 通过键来获取配置信息
	 * 
	 * @param key
	 * @return String
	 */
	public String get(String key) {
		return prop.getProperty(key);
	}

	/**
	 * 把配置转换为Map
	 * 
	 * @return Map
	 */
	public Map toMap() {
		return prop;
	}
}
